#include <stdio.h>

int main(int argc, const char *argv[])
{
	// 初始化：在定义变量的同时 给变量赋一个初值
	int a = 10; // 用常量10来初始化变量a
	printf("a = %d\n", a); // 10

	// 变量在定义好之后 就可以被重新赋值了
	a = 20;
	printf("a = %d\n", a); // 20
	a = 30;
	printf("a = %d\n", a); // 30

	// 先定义变量  然后再赋值
	int b;
	b = 10;

	// 也可以使用变量来初始化变量
	int c = b;
	printf("c = %d\n", c); // 10 

	// 变量之间也可以直接相互赋值
	c = a;
	printf("c = %d\n", c); // 30 

	// 也可以使用表达式给变量赋值
	c = a + 5;
	printf("c = %d\n", c); // 35 

	// 如果定义变量时没有进行初始化 那么变量中保存是一个随机值
	int d;
	printf("d = %d\n", d); // 随机值

	// 如果定义变量时 不知道用谁来初始化 且不想被随机值影响
	// 一般我们都使用 0  来初始化变量
	int e = 0;
	printf("e = %d\n", e); // 0

	// C语言中 变量必须先定义才能使用
	// k = 10; // 错误的 因为此时 k 还没有被定义
	int k = 0;

	// C语言中允许一行内定义多个变量 变量见用 逗号分隔
	int x, y = 0, z = 100;
	printf("x = %d\n", x); // 随机值
	printf("y = %d\n", y); // 0
	printf("z = %d\n", z); // 100

	// C语言中规定 同一个作用域内(同一个{}内) 不允许定义重名的变量
	// int k = 20; // 和 42行 重名 报错

	return 0;
}
